package com.fary.beans.factory.support;

import com.fary.core.SpringException;
import com.fary.beans.factory.config.BeanDefinition;
import com.fary.core.AliasRegistry;

public interface BeanDefinitionRegistry extends AliasRegistry {

	/**
	 *
	 */
	void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws SpringException;

	/**
	 *
	 */
	void removeBeanDefinition(String beanName) throws SpringException;

	/**
	 *
	 */
	BeanDefinition getBeanDefinition(String beanName) throws SpringException;

	/**
	 *
	 */
	boolean containsBeanDefinition(String beanName);

	/**
	 *
	 */
	String[] getBeanDefinitionNames();

	/**
	 *
	 */
	int getBeanDefinitionCount();

	/**
	 *
	 */
	boolean isBeanNameInUse(String beanName);

}